 /*******************************************************************
* File Name      : SoftI2C.H
* Description       : 
* Created on: 2019-1-14
* Author: Admin
********************************************************************/
#ifndef   SOFTI2C_H_
#define  SOFTI2C_H_

/********************************************************************
*MCU接口,根据项目使用的mcu特性修正定义内容
********************************************************************/
#include <avr/io.h>
//SDA,SCL IO口定义
#define _SoftI2C_SDA    0x08    //PB.3
#define _SoftI2C_SCL    0x20    //PB.5
//SDA 高低电平
#define SetSoftI2CSDA() (PORTB |= _SoftI2C_SDA)
#define ClrSoftI2CSDA() (PORTB &= (~_SoftI2C_SDA))
//SCL 高低电平
#define SetSoftI2CSCL() (PORTB |= _SoftI2C_SCL)
#define ClrSoftI2CSCL() (PORTB &= (~_SoftI2C_SCL))
//SDA的IO方向(输入/输出)
#define SoftI2CSdaIn()    (DDRB &= (~_SoftI2C_SDA))
#define SoftI2CSdaOut() (DDRB |= _SoftI2C_SDA)
//SDA的电平状态
#define SoftI2C_SDA_H() (PINB&_SoftI2C_SDA)
#define SoftI2C_SDA_L() ((PINB&_SoftI2C_SDA)==0)  

///////////////////////////////////////////////////////////////////
typedef unsigned char u8;


///////////////////////////////////////////////////////////////////
//初始化IIC的IO口      
void IIC_Init(void);                 
void IIC_Start(void);
void IIC_Stop(void);
void IIC_Ack(void);
u8 IIC_Wait_Ack(void);         
 //IIC发送一个字节
void IIC_Send_Byte(u8 txd);    
//IIC读取一个字节
u8 IIC_Read_Byte(void);       
#endif /* SOFTI2C_H_ */
